home *** CD-ROM | disk | FTP | other *** search
- {
- > I'm looking for a pascal V6 program to detect the UART-type installed.
- }
-
- program ComType;
-
- { Detect the type/presence of a comport-chip.
- Norbert Igl, 5/92 }
-
- uses
- crt;
-
- Const ComPortText :
- Array[0..4] of String[11] =
- (' N/A ',
- '8250/8250B ',
- '8250A/16450',
- ' 16550A ',
- ' 16550N ');
- IIR = 2;
- SCRATCH = 7;
-
- Var PortAdr : Array[1..4] of Word absolute $40:0;
-
- function ComPortType(ComX:byte):byte;
-
- BEGIN
- ComPortType:=0;
- if (PortAdr[ComX] =0)
- or (Port[PortAdr[ComX]+ IIR ] and $30 <> 0)
- then exit; {No ComPort !}
- Port[PortAdr[ComX]+ IIR ] := 1; {Test: enable FIFO}
- if (Port[PortAdr[ComX]+IIR] and $C0) = $C0 {enabled ?}
- then ComPortType := 3
- else If (Port[PortAdr[ComX]+IIR] and $80) = $80 {16550,old version..}
- then ComPortType := 4
- else begin
- Port[Portadr[ComX]+SCRATCH]:=$AA;
- if Port [Portadr[ComX]+SCRATCH]=$AA {w/ scratch reg. ?}
- then ComPortType:= 2
- else ComPortType:= 1;
- end;
- END;
-
- var com : byte;
-
- begin
- clrscr;
- writeln('COMPORT Chiptest':75);
- writeln('Freeware by Norbert Igl, Germany':75);
- writeln;
- for com := 1 to 4 do
- writeln('COM:',com,': ', ComPortText[ComPortType(com)]);
- end.